
#ifndef __LIBERTY_ENGINE_PATH_H__
#define __LIBERTY_ENGINE_PATH_H__

#include <vector>
#include <string>

namespace Liberty { namespace Engine {
    class Path {
    public:
#ifdef WIN32
        static void winifyPath(std::string&);
        static void winifyPath(std::basic_string<wchar_t>&);
#endif

        static void unixifyPath(std::string&);
        static void ensureSuffixSlash(std::string&);
        static void removeSuffixSlash(std::string&);

        static std::string append(const std::string& p1, const std::string& p2);
        static std::string split (const std::string& p, std::string* p2 = nullptr);
        static std::string splitExtension(const std::string& p, std::string* p2 = nullptr);
        static std::vector<std::string> splitParts(const std::string& p, char c = '/');
        static std::string relativeTo(const std::string& name, const std::string& otherFile);
        static std::string normalize(const std::string&);
    };
}}

#endif
